大家好我正在开发一个Windows程序,其安装需要重新启动explorer.exe。我知道“重新启动计算机以完成安装”是此处的标准方法,但我希望我的安装程序为用户提供仅重新启动资源管理器的选项,以便他们可以立即开始使用我的程序。最好的方法是什么?当然,我可以找到并终止该过程,但这似乎很恶心。是否有一些技巧可以让Explorer认为用户正在注销并干净地关闭?谢谢! 最佳答案 这是MSI安装吗?您是否考虑过使用RestartManager?重启管理器将检测哪些进程正在打开文件/句柄并需要重启,并允许您自动停止/启动这些进程而无需重启。
经过MSDNShellExtensions之后我不太确定我是否可以扩展资源管理器的ShellClick或ClickEvent的行为。任何建议或代码片段、文章或演练? 最佳答案 不存在这种可能性。那会使外壳太脆弱。想象一下所有利用此功能的恶意软件。如果要捕获点击事件,没有简单的方法。你可以SetWindowsHookEx并监视/捕获CabinetWClass和/或DirectUIHWND类的所有窗口的鼠标消息。您可以将您的代码注入(inject)explorer.exe的进程并从那里拦截消息。这是injectingadllintoap
如何在Windows下以编程方式禁用连接的或内置的网络摄像头?通过禁用它们,我的意思是任何试图访问相机的程序都应该:无法访问它们能够访问他们,但他们应该收到一张黑色图片而不是视频提要我为什么要这样做:我有一台带网络摄像头的笔记本电脑。没有简单的方法可以通过软件禁用它。我想创建一个带有禁用网络摄像头按钮的应用程序,这样任何想要使用它的应用程序都将无法使用,还有一个按钮可以重新启用它。我不想在摄像头上放置任何东西,否则我不会在这里问这个问题。 最佳答案 SO上有两个链接,用于以编程方式启用/禁用设备:HowdoIdisableasyst
我在WindowsXP中使用默认shellView实现了命名空间扩展。一切正常,但我想添加路障(ADescriptionofProtectedFolders-也适用于WindowsXP)。是否可能使用已记录/未记录的函数(SFVM消息),或者此功能是硬编码的? 最佳答案 如果您自己为扩展View填充所有数据,那么您可以自己读取隐藏(或任何其他)文件夹的内容并立即显示它们,或者在需要时隐藏。您的扩展使用它自己的命名空间,它不受内置shell保护选项的控制。附言从Windows7+开始应该不是问题。
我正在开发一个检测弹出对话框的应用程序,然后自动关闭它。我将其编写为C++/Win32应用程序。这对话框是由IE7生成的,我可以检测到窗口,但是使OK按钮“单击”的几种方法都失败了。搜索其他人的解决方案,将这些消息发送给按钮handle似乎在很多情况下都有效:PostMessage(handle,WM_LBUTTONDOWN,0,0);PostMessage(handle,WM_LBUTTONUP,0,0);PostMessage(handle,BM_SETSTATE,1,0);虽然在我的测试中它对按钮状态没有影响。我可以将制表符发送到主窗口并看到OK按钮获得焦点,但随后发送返回字符没
我有一个程序,我需要根据用户运行的Windows版本显示指向不同下载的不同链接。使用thisanswer我能够检测到操作系统是哪个版本。同时使用thisanswer我可以检测我是在32位还是64位版本的操作系统上运行。这完全符合我的需要,但我遇到了thispage其中声明WindowsXP64位版本和WindowsServer2003使用版本号5.2。我如何检测这两个操作系统之间的差异?作为旁注,如果他们使用200364位或XP64位,我确实需要将他们发送到不同的位置,这里是我需要发送给人们的链接:RemoteDesktopConnection(TerminalServicesClie
我想以编程方式从micrsoft符号服务器(http://msdl.microsoft.com/download/symbols)下载符号。例如。给定名称“ntdll.dll”我想将.pdb保存到任何目录中。dbghelp.dll中的API似乎可以解决这个问题。(http://msdn.microsoft.com/en-us/library/windows/desktop/ms679291%28v=vs.85%29.aspx)但我不知道如何以正确的方式使用它们。有没有人以前做过类似的事情并且可以给我一些示例代码?谢谢! 最佳答案 我
我正在开发一种工具来提取人们在Mac和Windows上的网络访问(Chrome、Firefox和Safari上的历史记录)。我已成功检索到Chrome和Firefox生成的历史记录。但是,我无法在Safari上检索完整的浏览历史记录。我查了一下知道,在Mac上,Safari将历史记录保存在这两个文件中:/Users//Library/Safari/History.plist(存储页面“最后一次访问”时间和访问次数)/Users//Library/Caches/com.apple.Safari/Cache.db(存储blob缓存数据、URL、时间戳)。引用:http://www.appl
我一直在努力解决ChrisIversonwashavinginthisotherStackoverflowquestion的问题.我想以编程方式启动SFC(系统文件检查器工具)。它适用于WindowsXP:privatevoidRunSfc(){ProcessStartInfostartInfo=newProcessStartInfo("cmd","/Ksfc.exe/scannow");System.Diagnostics.Process.Start(startInfo);}可以在WindowsXP下工作的其他变体://LaunchSFCdirectlyProcessStartInf
我正在使用C#winforms开发应用程序。我们的应用程序将安装在win8surface(触摸屏设备)上。我们想检查键盘是否通过USB连接,然后我们的应用程序将不会显示软键盘,否则会显示。有许多方法可用于检查WinRT,但没有一种方法可用于winformsC#。如果我的问题不清楚,请告诉我。提前致谢。 最佳答案 我刚刚写了这篇文章并在W8上进行了测试:ManagementObjectSearchersearcher=newManagementObjectSearcher("SelectNamefromWin32_Keyboard")